這篇的內容會聚焦步驟5
PE文件就是windows中的.exe執行檔
在Linux會叫做ELF
PE的結構會長這樣
(Source : https://0xrick.github.io/win-internals/pe2/)
主要分析NT Headers的部分
我們使用PE Bear
TimeDataStamp(編譯時間) : 2010/11/20
Size of OptionalHeader : 通常0xe0為32bit
Characteristics : 檔案屬性,可參考下圖
有很多
但我們主要看DataDirectory中的Import Directory的部分
可以看到他Address = A1E0
接下來可以進行一些計算,就會得到Import Directory真正的起始位址
就可以知道import了哪些東西
這裡我們直接用PE-bear看就先不算惹
總共有7個dll
分別為
Kernel32.dll
Advapi.dll
Ws2_32.dll
Msvcp60.dll
iphlpapi.dll
Wininet.dll
Msvcrt.dll
接下來我們來看在dll中,呼叫了哪些函數
Ordinal為hex型態,把Oridinal轉為decimal之後透過查表/IDA可以看出呼叫了這些
(查表 : https://github.com/phracker/HopperScripts/blob/master/ws2_32.txt)
Ordinal 3: closesocket
Ordinal 10 : ioctlsocket
Ordinal 13: listen
Ordinal 8: htonl
Ordinal 14 : ntohl
Ordinal 115: WSAStartup
Ordinal 11: inet_ntoa
Ordinal 12: inet_ntoa
Ordinal 9: htons
Ordinal 17: recvfrom
Ordinal 4: connect
Ordinal 11: inet_addr
改用ida看
今天得知了有哪些dll與函數
明天來透過呼叫的這些函數
去猜測這隻程式可能會有哪些功能!
Book : Windows APT Warfare:惡意程式前線戰術指南(第二版)
PE File
PE文件屬性